"""
五种数据容器的通用功能
    1.len(容器) 统计数据的数量/长度
    2.max(容器) 最大元素
    3.min(容器) 最小元素
    4.list(容器) 转列表
    5.tuple(容器) 转元组
    6.str(容器) 转字符串
    7.set(容器) 转集合
    8.sorted(容器,reverse=True) 容器排序
"""
# 定义五种数据容器
my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
my_str = "abcgdef"
my_set = (1, 2, 3, 4, 5)
my_dict = {"k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5}

# len()统计元素个数
print(f"列表 的元素个数为：{len(my_list)}")
print(f"元组 的元素个数为：{len(my_tuple)}")
print(f"字符串 的元素个数为：{len(my_str)}")
print(f"集合 的元素个数为：{len(my_set)}")
print(f"字典 的元素个数为：{len(my_dict)}")

# max() 最大元素
list_max = max(my_list)
print(f"列表{my_list}的最大元素为:{list_max}")
tuple_max = max(my_tuple)
print(f"元组{my_tuple}的最大元素为:{tuple_max}")
str_max = max(my_str)
print(f"字符串{my_str}的最大元素为:{str_max}")
set_max = max(my_set)
print(f"集合{my_set}的最大元素为:{set_max}")
dict_max = max(my_dict)
print(f"字典{my_dict}的最大元素为:{dict_max}")
# min() 最小元素
print("------------------------------------")
list_min = min(my_list)
print(f"列表{my_list}的最小元素为:{list_min}")
tuple_min = min(my_tuple)
print(f"元组{my_tuple}的最小元素为:{tuple_min}")
str_min = min(my_str)
print(f"字符串{my_str}的最小元素为:{str_min}")
set_min = min(my_set)
print(f"集合{my_set}的最小元素为:{set_min}")
dict_min = min(my_dict)
print(f"字典{my_dict}的最小元素为:{dict_min}")

# 类型转换：容器转列表 list(容器)
print(f"列表转列表的结果为：{list(my_list)}")
print(f"元组转列表的结果为：{list(my_tuple)}")
print(f"字符串转列表的结果为：{list(my_str)}")
print(f"集合转列表的结果为：{list(my_set)}")
print(f"字典转列表的结果为：{list(my_dict)}")

# 类型转换：容器转元组
print("-----------------------------------")
print(f"列表转元组的结果为：{tuple(my_list)}")
print(f"元组转元组的结果为：{tuple(my_tuple)}")
print(f"字符串元组表的结果为：{tuple(my_str)}")
print(f"集合转元组的结果为：{tuple(my_set)}")
print(f"字典转元组的结果为：{tuple(my_dict)}")

# 类型转换：容器转字符串
print("-----------------------------------")
print(f"列表转字符串的结果为：{str(my_list)}")
print(f"元组转字符串的结果为：{str(my_tuple)}")
print(f"字符串字符串表的结果为：{str(my_str)}")
print(f"集合转字符串的结果为：{str(my_set)}")
print(f"字典转字符串的结果为：{str(my_dict)}")  # 包含key和value

# 类型转换：容器转集合
print("-----------------------------------")
print(f"列表转集合的结果为：{set(my_list)}")
print(f"元组转集合的结果为：{set(my_tuple)}")
print(f"字符串集合表的结果为：{set(my_str)}")
print(f"集合转集合的结果为：{set(my_set)}")
print(f"字典转集合的结果为：{set(my_dict)}")

# 类型转换：容器转字典 无法转换成键值对的字典

# 容器的排序 sorted(容器, reverse=True) 默认是正向排序，排序后的结果都是列表,reverse=True:反向排序
my_list = [1, 3, 2, 4, 5]
my_tuple = (1, 3, 2, 4, 5)
my_str = "abcgdef"
my_set = (1, 3, 2, 4, 5)
my_dict = {"k2": 1, "k1": 2, "k4": 3, "k3": 4, "k5": 5}

print("-----------------------------------")
print(f"列表排序后的结果为：{sorted(my_list)}")
print(f"元组排序后的结果为：{sorted(my_tuple)}")
print(f"字符串排序后的结果为：{sorted(my_str)}")
print(f"集合排序后的结果为：{sorted(my_set)}")
print(f"字典排序后的结果为：{sorted(my_dict)}")

print("-----------------------------------")
print(f"列表反向排序后的结果为：{sorted(my_list, reverse=True)}")
print(f"元组反向排序后的结果为：{sorted(my_tuple, reverse=True)}")
print(f"字符反向串排序后的结果为：{sorted(my_str, reverse=True)}")
print(f"集合反向排序后的结果为：{sorted(my_set, reverse=True)}")
print(f"字典反向排序后的结果为：{sorted(my_dict, reverse=True)}")
 